/******************************************************************************* * Copyright (c) 2004, 2005 John-Mason P. Shackelford and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * John-Mason P. Shackelford - initial API and implementation *******************************************************************************/ package org.eclipse.ant.tests.ui.editor.formatter; import org.eclipse.ant.internal.ui.editor.formatter.FormattingPreferences; import org.eclipse.ant.internal.ui.editor.formatter.XmlDocumentFormatter; import org.eclipse.ant.tests.ui.testplugin.AbstractAntUITest; public class XmlDocumentFormatterTest extends AbstractAntUITest { public XmlDocumentFormatterTest(String name) { super(name); } /** * General Test */ public final void testGeneralFormat() throws Exception { FormattingPreferences prefs = new FormattingPreferences() { @Override public int getTabWidth() { return 3; } @Override public boolean useSpacesInsteadOfTabs() { return true; } }; simpleTest("formatTest_source01.xml", "formatTest_target01.xml", prefs); //$NON-NLS-1$ //$NON-NLS-2$ } /** * Insure that tab width is not hard coded */ public final void testTabWidth() throws Exception { FormattingPreferences prefs = new FormattingPreferences() { @Override public int getTabWidth() { return 7; } @Override public boolean useSpacesInsteadOfTabs() { return true; } }; simpleTest("formatTest_source01.xml", "formatTest_target02.xml", prefs); //$NON-NLS-1$ //$NON-NLS-2$ } /** * Test with tab characters instead of spaces. */ public final void testTabsInsteadOfSpaces() throws Exception { FormattingPreferences prefs = new FormattingPreferences() { @Override public int getTabWidth() { return 3; } @Override public boolean useSpacesInsteadOfTabs() { return false; } }; simpleTest("formatTest_source01.xml", "formatTest_target03.xml", prefs); //$NON-NLS-1$ //$NON-NLS-2$ } /** * @param sourceFileName * - file to format * @param targetFileName * - the source file after a properly executed format * @param prefs * - given the included preference instructions * @throws Exception */ private void simpleTest(String sourceFileName, String targetFileName, FormattingPreferences prefs) throws Exception { XmlDocumentFormatter xmlFormatter = new XmlDocumentFormatter(); xmlFormatter.setDefaultLineDelimiter(System.getProperty("line.separator")); //$NON-NLS-1$ String result = xmlFormatter.format(getFileContentAsString(getBuildFile(sourceFileName)), prefs); String expectedResult = getFileContentAsString(getBuildFile(targetFileName)); assertEquals(expectedResult, result); } }